倾家荡产、隐私全无?独家揭秘撞库攻击!
撞库的原理和危害
“撞库”在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储着大量敏感数据,比如我们登录一个网站所需要的用户名、密码,再比如手机号、身份证号等个人隐私信息。“撞库”在英文中的表述为 Credential Stuffing(密码嗅探),也非常直白的说明了撞库的主要场景:试图获取正确的账号/密码组合,大白话就是“盗号”。
现实中发生的撞库攻击主要是攻击者通过一些自动化工具(如脚本)针对要撞库站点的相关接口(比如登录接口)批量提交大量的用户名/密码组合,记录下其中能成功登录的组合并盗取该账号,为接下来做其他的坏事(比如将银行账号中的资金转走,或是游戏账号中的虚拟物品出售,或是盗用他人身份发表一些言论等等)做好准备。
值得注意的是,盗号并不是撞库攻击的唯一目的,验证某个账号有没有在一个站点中注册过也是常见的撞库目的。
举个例子,同样是登录失败,很多站点对于“用户不存在”和“密码错误”会给出明确不同的两种提示,这意味着我即使不知道你的密码,也可以知道你的手机号有没有在这个站点注册过。知道这个有什么用呢?举个 P2P 行业的例子,假设一个手机号在几十个借贷平台上都注册过,那这个手机号的主人恐怕有着很糟糕的财务状况(多头借贷),贷款给他的风险就很高了。
从攻击目的上区分,撞库有以下几种常见场景:
弱密码嗅探:
类似 111111、123456 这样的简单密码因为很多人用,用这样的弱口令去试探大量的账号,就有一定概率能发现一些真正在使用弱密码的账号。实施这样的攻击一般要求攻击者手上已经掌握了大量的账号以及常见的弱密码库,当然如果不知道账号,随机构造一些也是有概率成功的,比如手机号这种格式固定的账号。
利用拖库数据:
这是攻击成功率更高的一种方式,原理是大多数人倾向于在多个站点上使用同一个密码(有多少人淘宝和支付宝的密码是一样的?)。当攻击者成功入侵一个安全防护能力很弱的站点 A,并拿到其数据库的所有用户名密码组合,然后再拿着这些组合去站点 B 尝试,如果你两个站点都注册过并且使用了同样的密码……撞库就成功了。
针对高权限账号的暴力破解:
暴力破解严格来说跟撞库是两种类型的攻击,但我们还是要提一下,因为二者从攻击方法和防护方式的角度来看都差不多。这主要是针对一些高权限账号(如网站的管理员)用大量密码去试探,想要盗用的账号目标非常明确。
云上常见的撞库案例
明白了原理,撞库攻击的危害也就很明确了。对个人用户来说,这会导致个人密码泄露、账号被盗,进而造成财产或名誉损失;对企业来说,不仅会造成客户信息等商业机密的泄露,还会对企业的声誉和形象造成严重伤害。
撞库攻击现状
撞库离我们远吗?实际情况如何?根据我们对阿里云 WAF 流量的分析,分享下面几个数据,不难看出撞库攻击早已日夜相伴于我们的身边,且已极具规模化、专业化。
数字 1:50 万个
这是我们明确观察到的每天有大量聚集性进行撞库攻击的 IP 量,考虑到还有相当多的攻击场景中使用了秒拨等离散 IP 资源没有被统计进来,每天实际参与撞库攻击的 IP 数量估计还要大 1-2 个数量级。另外值得注意的是,相当一部分攻击源 IP 在 C 段上有聚集性,从我们观察到的情况来看,每天有 200 多个 C 段(共 256 个连续 IP)中有超过 200 个 IP 实施撞库攻击。
数字 2:4.48 亿次
云 WAF 流量中每天检测到的撞库/暴力破解请求量高达 4.48 亿次,这只是每天的数据,由此可以看出撞库这种攻击手法是多么受到黑客的欢迎。
数字 3:630 万次
这是某网站一天内被撞库攻击的总请求量。
实际上,我们观测到在一些撞库攻击的“热门行业”,如 P2P、游戏、区块链、信用卡、电商等,撞库攻击已经在非常成规模的持续进行,这个持续时间可能达数月甚至是长年在跑,与业务相生相伴。而在一些笔者意想不到的行业(比如医美,瞎猜一下攻击意图也许是想通过验证你是否注册过医美类网站来给医美广告提供更精准的投放参考),也发现了大规模的撞库事件。
数字 4:83%
从实施撞库攻击的攻击工具来看,83%以上的攻击流量来自简单的脚本,这里的“简单脚本”定义为一些通过最简单的人机识别方式(如 JS 校验)就能检测出的脚本工具,而在这其中 Java Tools 和 Python Requests 是“最有存在感”的两种脚本工具。
不过值得注意的是,近些年随着爬虫技术和相关产业的迅猛发展,“正规军”占比已越来越大,这些团伙手中掌握大量的攻击资源和最新的爬虫技术,整个产业链上下游分工精细,协同流畅,普通企业防御起来的难度也在迅速上升。
撞库带来的合规风险
自欧盟隐私法 GDPR 生效以来,世界各国监管对于数据保护极为重视,自 2019 年开始,对泄露的处罚和后果也呈上升趋势。在 GDPR 的第 4 条中提出,个人数据泄露是指“由于违反安全政策而导致传输、储存、处理中的个人数据被意外或非法损毁、丢失、更改或未经同意而被公开或访问。”
所以,即使是使用已经泄露的数据来进行撞库攻击,但是企业自身的安全防护工作没有能够避免被未经授权的访问,也是违规的一种。美国的健康保险携带和责任法案(HIPAA)也有规定 “以 HIPAA 隐私规则所不允许的方式获取、访问、使用或披露个人医疗信息,等于损害安全性或隐私。”即使被非法访问的数据是被加密的,但是系统和数据受到了未经授权的攻击,因此也属于 HIPAA 隐私权规则所不允许的披露。被撞库的企业为受害者,但是每个受害者都因自身安全控制不到位而成为这雪球效应中贡献的一分子。
2019 年夏天,信用评级公司穆迪(Moody's)对网络安全的业务影响进行了新的调整,将网络风险纳入其信用评级。穆迪根据企业违规而造成的业务影响将上市企业的评级从稳定降至负面。穆迪正在积极将网络风险纳入其信用评级,这可能只是第一个倒下的多米诺骨牌。信用评级广泛影响到投资者在选择投资对象时所考虑的风险评估以及投资决定。对上市企业来说,重新考虑其网络安全和合规性方法,尤其是随着法规变得越来越难以遵守。不仅如此,针对特定的行业,也将面对更多不同的处罚规定。
随着近年来物联网设备的爆炸性增长,再加上公共云、容器和 VM 的激增,导致人们对数据流量的可见性普遍缺乏,从而大大增加了整体威胁面和公司的漏洞。数据泄露事件不断增加,导致撞库攻击成为近年来常用的一种入侵办法。每一次泄露的数据都可能变成下一次入侵的开门匙。
如何防护撞库攻击?
个人篇
从个人用户自我保护的角度来说,我们给出 4 个建议:
尽量减少在不同网站使用相同密码。当然,人性的懒惰跟密码机制的安全性天然上就有冲突,大部分人很难做到这一点,据第三方统计,超过 60%的人依然在多个站点使用同一个密码。
使用更复杂的密码。比如请不要再用 123456、111111 了……
定期更换常用密码。黑产手里往往掌握大量的“社工库”,里面存储了很多已知的用户名-密码组合,他们可能就包含了你多年前在某网站上使用的组合。因此经常更换密码可以减小社工库信息的有效期。
启用更多密码以外的身份验证机制。其实很多安全性好的企业已经在采取一些二次验证、多因素验证之类的最佳实践,如苹果的二次验证、Google 的身份验证器、支付宝的人脸识别、微信的声纹等,建议个人用户尽可能的开启类似的验证机制。
企业篇
从企业的角度来说,做好账户安全是非常非常重要且基础的工作,因为账户很大程度上是业务安全体系的基石,账号安全一旦失守,只会带来后续更多的问题,补救这些问题需要付出的成本要远远大于做好账户安全防护本身。当然账号安全本身是非常复杂的系统工程,这里我们只是针对撞库这个场景给出一些最佳实践供参考:
强制用户密码的强度。
这点不少站点现在已经做得很好了,但是还有相当多的应用允许用户使用 111111 这样的弱密码。同时也特别注意,不要忽略小程序、App 等非网页环境的注册接口。
定期强制用户更换密码。
这点主要针对企业内部员工,毕竟记住一个密码已经很痛苦了,这带来的用户体验将会直线下降。
在账户相关接口加强人机防控策略。
这里的接口主要包括登录、注册、找回密码、获取短信验证码等,“人机防控”指的是将这些接口中“机器”的访问请求和“真实的人”区别出来,在文章开头我们已经讲过,真实情况下攻击者几乎没有手动实施攻击的情况,如果能将大部分针对账号的“机器流量”识别出来并拦截,会是安全水位很大的一个提升。从技术手段来说,常见的有使用验证码、封禁高频请求的 IP/会话、部署人机识别的 SDK 组件等等。
重要业务流程采用二次验证。
如转账前通过人脸识别、指纹声纹、短信/邮件验证码、身份证末位数字验证等机制来确认当前操作来自账号拥有者。
建立业务维度的账户异常指标监控,并及时处理风险账号。
区别于“人机”的技术手段,这里主要是从业务角度(比如高频发帖、异常转账等等),对一些行为上不正常的账号进行监控和处罚,作为技术防控的补充。
借助安全工具做好防撞库攻击。
如果遇到撞库等账户安全问题的困扰,又没有足够专业的团队或精力来按照上述建议进行对抗,建议选择一款合适的安全工具来应对。一般来说, Web 应用防火墙(WAF)就能有效应对撞库攻击。以阿里云 WAF 为例,其内置了内置撞库、暴力破解、垃圾注册、流量基线、弱口令检测等多个检测模型,多种形式的人机检测组件,以及针对 APP 的安全 SDK 能力,还可以基于异常行为、时序、攻击手法、团伙画像等多维度识别恶意爬虫,做到实时防护。从这个角度来看,对于企业来说,选择一款功能丰富强大的安全工具往往可以起到事半功倍的效果。
结语
有人的地方就有江湖,有账号的地方就有撞库。密码制度本身因安全需求而生,却也带来了撞库这类的风险。我们相信,未来密码会越来越多的被其他体验更好、安全性更高的身份校验方式所取代,而这些方式或许又存在隐私、合规相关的问题。最好的方案似乎永远要在安全、便利、隐私这几个因素之间互相平衡。着眼于当下,用户名/密码的形式依然主导着绝大多数站点的账号管理方式,因此以撞库攻击为代表的账号安全问题依然需要引起个人用户和企业的足够重视。希望本文能够给您带来一些参考和帮助,共同建设更安全的互联网!
即日起至 3月21日,千万流量支持原创作者,更有专属【勋章】等你来挑战
☞时间复杂度的表示、分析、计算方法……一文带你看懂时间复杂度!
☞闪电网络的 5 个优点和4 个缺点、本质、来源与工作原理……一文带你读懂闪电网络!